package com.alks.function.service.pack;

import com.alks.entity.data.entity.*;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.PcSoleInStockReq;
import com.alks.function.data.request.order.PcOrderDataRsjRequest;
import com.alks.function.data.request.pack.*;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;

public interface PackMaterialService {

    ResponseInfo listPcPackMaterialInStorage(PcPackMaterialRequest request);

    ResponseInfo getPcPackMaterialInStorageCondition();

    ResponseInfo getPcPackMaterialOutCondition();

    ResponseInfo getPackMaterialOut(PcPackMaterialOutRequest request);

    ResponseInfo getPcPackStockCondition();

    ResponseInfo getPcPackStock(PcPackStockRequest request);

    ResponseInfo getPcPackStockInOut(String mtlNo, String mtlName );

    ResponseInfo getPcPackFaceCondition(String levelCode1, String levelCode2);

    ResponseInfo getPcPackFaceMtl(PcPackFaceMtlRequest request);

    ResponseInfo getPcPackFaceMtlDeTail(PcPackFaceMtlDetailRequest request);

    ResponseInfo collectAllList(PcOrderDataRsjRequest request,String flag);

    ResponseInfo deleteFromProdStatus(List<PcDesignGetRep> rep, String choose);

    ResponseInfo deleteByCutAStitch(PcCutStitchRep rep, String choose);

    void downloadPcPackIn(HttpServletResponse response, PcPackMaterialRequest request) throws UnsupportedEncodingException;

    void downloadPackOut(HttpServletResponse response, PcPackMaterialOutRequest request) throws UnsupportedEncodingException;

    void downloadPcPackMtl(HttpServletResponse response, PcPackFaceMtlDetailRequest request) throws IOException;

    ResponseInfo scanCollectAll(ScanCollectionAllReq req, String choose);

    void downloadCollection(HttpServletResponse response, PcOrderDataRsjRequest req) throws IOException;

    void downloadCut(HttpServletResponse response, PcOrderDataRsjRequest req) throws IOException;

    ResponseInfo scanInStatusOther(TestBoardsScan req);

    ResponseInfo getSolePurPreMtlOther(PcSoleInStockReq req);

    ResponseInfo scanSolePurPreMtlOther(List<PcSoleInPcProdRep> list);

    ResponseInfo updatePcOrderStatus(PcDesignGetRep rep);
}
